package com.jd.fruit.controller.admin.shop;

import java.io.IOException;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jd.fruit.common.annotation.Controller;
import com.jd.fruit.common.controller.BaseController;
import com.jd.fruit.common.util.DictUtil;
import com.jd.fruit.common.util.StringUtil;
import com.jd.fruit.model.admin.shop.Attribute;
import com.jd.fruit.model.admin.shop.Category;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Page;

/**
 * 添加商品分类管理
 * 
 * @author lishunfeng
 * 
 */
@Controller("/admin/shop/attr")
public class AttributeController extends BaseController {
	/**
	 * 添加商品分类属性
	 */
	public void add() {
		render("attr_add.html");
	}

	/**
	 *商品分类属性数据列表
	 */
	public void list() {
		int pageNumber = this.getParaToInt(0,1);
		Page<Attribute> attributes = Attribute.dao.list(pageNumber,DictUtil.default_pageSize);
		this.setAttr("attributes", attributes);
		render("attr_list.html");
	}

	/**
	 * 编辑商品分类属性
	 */
	public void detail() {
		String id = StringUtil.getDcodePara(getRequest(), "id");
		Attribute attribute = Attribute.dao.findById(id);
		this.getRequest().setAttribute("oprtype", DictUtil.oprUpdate);
		this.getRequest().setAttribute("Attributes", attribute);
		render("attr_add.html");// 这个是页面的命名规范
	}

	/**
	 * 删除商品分类属性
	 * 
	 * @throws IOException
	 */
	public void delete() throws IOException {
		String id = StringUtil.getDcodePara(getRequest(), "id");
		boolean isOk = Attribute.dao.deleteById(id);
		if (isOk) {// 删除成功
			this.renderText(DictUtil.success);
		} else { // 删除失败
			this.renderText(DictUtil.failed);
		}
	}

	/**
	 *保存商品分类属性
	 */
	public void save() {
		boolean issuccess=false;
		JSONObject result=new JSONObject();
		String id =getPara("id");
		String attrSort=getPara("attr_sort");
		String attrName=getPara("attr_name");
		try {
			//设置要保存的数据
			Attribute attribute=new Attribute();
			attribute.set("attr_name", attrName);
			attribute.set("attr_sort", attrSort);
			//保存的数据id如果不是空则是更新 否则 保存
			if(StrKit.notBlank(id)){
			  attribute.set("id", id);
			  attribute.update();
			  //如果无更新的数据并且没有报错则视为成功
			  issuccess=true;
			}else{
			  issuccess=Attribute.dao.save(attribute);
			}
			//把执行结果返回到页面
			if (issuccess) {// 成功
				result.put("code", DictUtil.success);
			} else { // 失败
				result.put("code", DictUtil.failed);
			}
		} catch (Exception e) { 
			// TODO Auto-generated catch block
			result.put("code", DictUtil.failed);
		}
		this.renderJson(result);
	}

	/**
	 * 加载商品分类属性Jason数据
	 * 
	 * @throws IOException
	 */
	public void loadData() {
		String type = getPara("type");
		String result = "";
		JSONArray jsarray = null;
		if (!StrKit.isBlank(type) && type.equals(DictUtil.jsontree)) {
			String rolemap="";
			jsarray = Category.dao.loadTree(rolemap);
			if (jsarray != null) {
				result = jsarray.toJSONString();
			}
		} else {
			result = Category.dao.loadTreeGrid();
		}
		renderJson(result);
	}
	

}
